package cn.getech.data.metadata.service;

import cn.getech.data.metadata.entity.CollectionNotificationReceived;
import cn.getech.data.metadata.entity.CollectionNotificationUser;
import cn.getech.data.metadata.entity.meta.CollectionNotificationRelatednessUser;

import java.util.List;

public interface CollectionNotificationRelatednessUserService {

    /**
     * 根据用户组id查询需要发送的邮件人
     * @param notificationUserId
     * @return
     */
    List<CollectionNotificationReceived> queryByNotificationUserId(Long notificationUserId);

    /**
     * 查询免打扰时间(用户通知组)
     * @param task    关联的id    比如 元数据id  或者质量管理id
     * @param relatednessType  类型  1为元数据   2为质量管理类型
     * @return
     */
    List<CollectionNotificationUser> queryNotificaCondition(Long task, String relatednessType);

    /**
     * 保存  与通知用户组关联关系
     * @param collectionNotificationRelatednessUser
     */
    void saveRelatednessNotification(CollectionNotificationRelatednessUser collectionNotificationRelatednessUser);

    /**
     * 编辑  与通知用户组关联关系 （先删除 在保存）
     * @param collectionNotificationRelatednessUser
     * @param id  关联的id  比如 元数据采集  质量列表
     * @param type 类型 1为 元数据采集 2为质量列表类型
     */
    void updateRelatednessNotification(List<CollectionNotificationRelatednessUser> collectionNotificationRelatednessUser,Long id,String type);
    /**
     *  1 元数据类型  2 质量列表
     * 依照 （元数据采集和质量列表。。。。。） id和类型查询关联的用户通知组(编辑回显)
     * @param id
     * @return
     */
    List<CollectionNotificationUser> queryCollectionNotificationRelatednessUserId(Long id,String typse);
}
